草庐IT

ruby - 如何测试其中包含 gets.chomp 的函数?

我有一个像这样使用gets.chomp的简单函数:defwelcome_userputs"Welcome!Whatwouldyouliketodo?"action=gets.chompend我想使用ruby内置的TestCase套件来测试它,如下所示:classViewTest问题是,当我运行那个测试时,gets.chomp停止了测试,因为它需要用户输入一些东西。有没有一种方法可以仅使用ruby来模拟用户输入? 最佳答案 您可以创建一个pipe并将其“读取端”分配给$stdin。写入管道的“写入端”然后模拟用户输入。下面是一个使用小

ruby-on-rails - Bundler 似乎无法通过 Rbenv 找到正确的 Ruby

多年来,我一直使用RVM作为我的Ruby版本管理器,但为了简单起见,我想切换到rbenv。但是我在部署时发现了一些奇怪的问题。这是它似乎出错的地方:#envRBENV_ROOT=\"/home/deploy/.rbenv\"PATH=\"/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:$PATH\"/home/deploy/.rbenv/bin/rbenvexecbundleinstall--gemfile/domains/myapp.com/releases/20140119013611/Gemfile--path/domains/

ruby - 与 Ruby 的 <=> 运算符混淆

我对Ruby的运算符感到困惑。它与==或===有何不同?任何综合示例/用例?谢谢。 最佳答案 是组合比较运算符。如果LHS等于RHS,则返回0;如果LHS大于RHS,则返回1;如果LHS小于RHS,则返回-1 关于ruby-与Ruby的运算符混淆,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4746129/

ruby-on-rails - rvm ruby​​ 1.9.2 和 Rails 3.1 无法启动服务器

我正在使用rvmuse1.9.2然后在尝试运行railss时出现以下错误。/Users/pel/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.0.rc5/lib/action_view/railtie.rb:34:in`block(3levels)in':undefinedmethod`debug_rjs='forActionView::Base:Class(NoMethodError) 最佳答案 检查你的config/environments/development.rb文件,你可能有

ruby - 类型错误:无法将 Net::HTTPOK 转换为字符串

我正在使用net/http和json使用google的地理编码API对地址进行地理编码。这是抛出错误的地方:response=Net::HTTP.get_response(URI.parse(url))result=JSON.parse(response)响应属于Net::HTTPOK类,但我想访问实际的JSON响应数据(而不仅仅是状态代码)。 最佳答案 你想要result=JSON.parse(response.body)http://www.ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rd

ruby-on-rails - counter_cache 列返回 0 的 Rspec 测试

几天来,我一直在努力弄清楚什么接缝是应该很容易做到的事情......然而,我对rails和ruby​​的世界还是很陌生,我就是无法解决这个问题一出...:p无论如何,我遇到的问题是我的模型中有许多:counter_cache列,在手动测试它们时它们都工作得很好。但是我想做TDD的事情,但由于某些未知原因我无法在rspec中测试它们?无论如何,这是我的模型(用户、评论和媒体)的示例:classUsertruebelongs_to:user,:counter_cache=>truevalidates:user_id,:presence=>truevalidates:content,:pre

ruby-on-rails - 无法在 OSX 10.11.3 上安装 Puma gem

我刚刚重新格式化我的MacBook,然后尝试克隆我的Rails项目。当我执行bundleinstall时,Pumagem失败。当我运行geminstallpuma-v'2.13.4'时,出现此错误:Fetching:puma-2.13.4.gem(100%)Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingpuma:ERROR:Failedtobuildgemnativeextension./Users/zulhilmi/.rvm/rubies/ruby-2.2.0/bin/ruby-r./sitec

ruby - 在 Mac OS X 上安装 Homebrew 无法连接到 raw.githubusercontent.com 端口 443

当我尝试安装Homebrew时,出现以下连接被拒绝错误。请帮我解决这个问题。$ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"curl:(7)Failedtoconnecttoraw.githubusercontent.comport443:Connectionrefused 最佳答案 适合我。除非它是github的真正问题,它可能是但我猜它不是,它可能是您的连接问题。您可以通过浏览器访问相同的URL吗?http

ruby-on-rails - 无法在 Ubuntu 13.04 上安装 rmagick gem

当我尝试安装rmagic时:geminstallrmagic它给出了错误:Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./home/biske/.rbenv/versions/2.0.0-p247/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingforgcc...yescheckingforMagick-config...yesche

ruby-on-rails - 如何从正则表达式返回 bool 值

我不太明白我在这里做错了什么..if@calc.docket_num=~/DC-000044-10/||@calc.docket_num=~/DC-67-09/@calc.lda=trueelse@calc.lda=falseend但似乎@calc.docket_num可以是任何字符串,并且它总是返回true。我这样做不对吗? 最佳答案 这是一条单线:@calc.lda=!!(@calc.docket_num=~/DC-000044-10|DC-67-09/)!!强制响应为true/false,然后您可以直接分配bool变量。